/**
 *	6.修改rearrange程序，去除最开始读取到column数组的数必须是奇数的限制，如果读取的为奇数个，
 *	最后一个值作为最后一组字符串的开始，到输入字符串的末尾被复制到输出字符串中
**/

// 去掉 read_column_numbers 函数中的判断奇偶语句

void rearrange(char * output, char const * input, int n_columns, int columns[])
{
	int col;
	int output_col;
	int len;

	len = strlen(input);
	output_col = 0;

	for(col = 0; col < n_columns; col += 2)
	{
		int nchars;
		if(col + 1 >= n_columns)
			nchars = len - columns[col];
		else
			nchars = columns[col + 1] - columns[col] + 1;
	
		if(output_col >= MAX_INPUT - 1)
			break;

		if(nchars <= 1)
		{
			printf("columns error, begin small than end!\n");
			break;
		}

		if(columns[col] >= len)
			continue;

		if(output_col + nchars > MAX_INPUT - 1)
			nchars = MAX_INPUT - 1 - output_col;
		
		strncpy(output + output_col, input + columns[col], nchars);
		output_col += nchars;
	}
	output[output_col] = '\0';
}
